+2005-09-09 Øyvind Kolås <pippin@gimp.org>
+
+ * babl/base/type-u16.c: (convert_double_u16_scaled):
+ * babl/base/type-u32.c: (convert_double_u32_scaled):
+ * babl/base/type-u8.c: (convert_double_u8_scaled),
+ (babl_base_type_u8):
+ * extensions/CIE-Lab.c: (convert_double_u8_scaled),
+ (convert_double_u16_scaled): uintval = rint (dval * MAXINT)
+
2005-09-09 Øyvind Kolås <pippin@gimp.org>
* tests/conversions.c: (validate_conversion): do relative average
#include <string.h>
#include <assert.h>
+#include <stdint.h>
#include "babl.h"
#include "babl-ids.h"
+#include <math.h>
static inline long
convert_double_u8_scaled (double min_val,
double max_val,
else if (dval > max_val)
u8val = max;
else
- u8val = (dval-min_val) / (max_val-min_val) * (max-min) + min;
+ u8val = rint ((dval-min_val) / (max_val-min_val) * (max-min) + min);
*(unsigned char *) dst = u8val;
src += src_pitch;
src, dst, src_pitch, dst_pitch, n); \
}
-MAKE_CONVERSIONS (u8, 0.0, (255.0F/256.0F)*1.0, 0x00, 0xff);
+MAKE_CONVERSIONS (u8, 0.0, 1.0, 0x00, UINT8_MAX);
MAKE_CONVERSIONS (u8_luma, 0.0, 1.0, 16, 235);
MAKE_CONVERSIONS (u8_chroma, 0.0, 1.0, 16, 240);
"max_val", 0.5,
NULL
);
-
babl_conversion_new (
babl_type_id (BABL_U8),
babl_type_id (BABL_DOUBLE),
"plane", convert_double_u8,
NULL
);
-
-
babl_conversion_new (
babl_type_id (BABL_U8_LUMA),
babl_type_id (BABL_DOUBLE),
"plane", convert_double_u8_luma,
NULL
);
-
babl_conversion_new (
babl_type_id (BABL_U8_CHROMA),
babl_type_id (BABL_DOUBLE),
else if (dval > max_val)
u8val = max;
else
- u8val = (dval-min_val) / (max_val-min_val) * (max-min) + min;
+ u8val = rint ((dval-min_val) / (max_val-min_val) * (max-min) + min);
*(unsigned char *) dst = u8val;
src += src_pitch;
else if (dval > max_val)
u16val = max;
else
- u16val = (dval-min_val) / (max_val-min_val) * (max-min) + min;
+ u16val = rint ((dval-min_val) / (max_val-min_val) * (max-min) + min);
*(unsigned short *) dst = u16val;
dst += dst_pitch;